<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<title>OpenCV: cv::detail::tracking::kalman_filters::UkfSystemModel Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon" />
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../tutorial-utils.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
   &#160;<span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d2/daf/namespacecv_1_1detail.html">detail</a></li><li class="navelem"><a class="el" href="../../de/d44/namespacecv_1_1detail_1_1tracking.html">tracking</a></li><li class="navelem"><a class="el" href="../../d1/d9b/namespacecv_1_1detail_1_1tracking_1_1kalman__filters.html">kalman_filters</a></li><li class="navelem"><a class="el" href="../../d3/d78/classcv_1_1detail_1_1tracking_1_1kalman__filters_1_1UkfSystemModel.html">UkfSystemModel</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="../../d4/d82/classcv_1_1detail_1_1tracking_1_1kalman__filters_1_1UkfSystemModel-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::detail::tracking::kalman_filters::UkfSystemModel Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Model of dynamical system for Unscented Kalman filter. The interface for dynamical system model. It contains functions for computing the next state and the measurement. It must be inherited for using UKF.  
 <a href="../../d3/d78/classcv_1_1detail_1_1tracking_1_1kalman__filters_1_1UkfSystemModel.html#details">More...</a></p>

<p><code>#include &lt;opencv2/tracking/kalman_filters.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:acd102936b4505bd208f7d7e6ea69aed2"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d78/classcv_1_1detail_1_1tracking_1_1kalman__filters_1_1UkfSystemModel.html#acd102936b4505bd208f7d7e6ea69aed2">~UkfSystemModel</a> ()</td></tr>
<tr class="separator:acd102936b4505bd208f7d7e6ea69aed2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c9d96bcaa30c0339fa2860a96390ec9"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d78/classcv_1_1detail_1_1tracking_1_1kalman__filters_1_1UkfSystemModel.html#a8c9d96bcaa30c0339fa2860a96390ec9">measurementFunction</a> (const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;x_k, const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;n_k, <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;z_k)=0</td></tr>
<tr class="separator:a8c9d96bcaa30c0339fa2860a96390ec9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8ab3780782327f6ee2c97bb6a0bd791"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d78/classcv_1_1detail_1_1tracking_1_1kalman__filters_1_1UkfSystemModel.html#ab8ab3780782327f6ee2c97bb6a0bd791">stateConversionFunction</a> (const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;x_k, const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;u_k, const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;v_k, <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;x_kplus1)=0</td></tr>
<tr class="separator:ab8ab3780782327f6ee2c97bb6a0bd791"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Model of dynamical system for Unscented Kalman filter. The interface for dynamical system model. It contains functions for computing the next state and the measurement. It must be inherited for using UKF. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="acd102936b4505bd208f7d7e6ea69aed2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd102936b4505bd208f7d7e6ea69aed2">&#9670;&nbsp;</a></span>~UkfSystemModel()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual cv::detail::tracking::kalman_filters::UkfSystemModel::~UkfSystemModel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a8c9d96bcaa30c0339fa2860a96390ec9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c9d96bcaa30c0339fa2860a96390ec9">&#9670;&nbsp;</a></span>measurementFunction()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::detail::tracking::kalman_filters::UkfSystemModel::measurementFunction </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;&#160;</td>
          <td class="paramname"><em>x_k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;&#160;</td>
          <td class="paramname"><em>n_k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;&#160;</td>
          <td class="paramname"><em>z_k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The function for computing the measurement from the state </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x_k</td><td>- state vector, </td></tr>
    <tr><td class="paramname">n_k</td><td>- noise vector, </td></tr>
    <tr><td class="paramname">z_k</td><td>- measurement vector. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ab8ab3780782327f6ee2c97bb6a0bd791"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8ab3780782327f6ee2c97bb6a0bd791">&#9670;&nbsp;</a></span>stateConversionFunction()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::detail::tracking::kalman_filters::UkfSystemModel::stateConversionFunction </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;&#160;</td>
          <td class="paramname"><em>x_k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;&#160;</td>
          <td class="paramname"><em>u_k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;&#160;</td>
          <td class="paramname"><em>v_k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;&#160;</td>
          <td class="paramname"><em>x_kplus1</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The function for computing the next state from the previous state </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x_k</td><td>- previous state vector, </td></tr>
    <tr><td class="paramname">u_k</td><td>- control vector, </td></tr>
    <tr><td class="paramname">v_k</td><td>- noise vector, </td></tr>
    <tr><td class="paramname">x_kplus1</td><td>- next state vector. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/tracking/<a class="el" href="../../d6/db3/kalman__filters_8hpp.html">kalman_filters.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:46 for OpenCV by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
